OAI eNB functional split with stable OAI EPC
Outcome
script to onboard OAI service on M-CORD (private)
script to onboard OAI service on M-CORD (final publish)
oaiBBU : split version of eNB
epc-service : use for setting up everything
CORD_Automation : fully automation for deployment / installation / debugging
Preparation
Server Spec
Before starting the Cord-in-a-Box installation, be sure that your server fit the following requirement
- 64-bit AMD64/x86-64 server
- 96 GB+ RAM
- 16+ CPU cores
- 2 TB+ disk
- Access to internet
- ubuntu 16.04 / 14.04 with fresh update
- sudo less
Setup sudo without password
use sudo visudo to edit the following configuration
Note: ==ubuntu== change to your user name
1 | # User privilege specification |
CiaB 4.1
==For CiaB 5.0 user, please directly go to Ciab-5.0==
Download source code from cord github, and modify the property of the bash file.
1 | curl -o ~/cord-bootstrap.sh https://raw.githubusercontent.com/opencord/cord/cord-4.1/scripts/cord-bootstrap.sh |
Problem1
2
3
4
5
6TASK [prereqs-common : Check here on failure: 'https://guide.opencord.org/troubleshooting.html#prereqs-common-failures'] *********************************************************************************************************************
Thursday 19 July 2018 10:36:08 +0800 (0:00:01.063) 0:00:01.113 *********
Pausing for 10 seconds
(ctrl+C then 'C' = continue early, ctrl+C then 'A' = abort)
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: error: (25, 'Inappropriate ioctl for device')
fatal: [localhost]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}
Due to the ansible version problem, we need to downgrade ansible version first.
1 | sudo apt-get remove ansible -y |
If you are having trouble when building CORD at the stage “lxc finished” in case of container connectivity problem.
Some campus network will not allow us to query the result of DNS, so that we need to modify the playbook.
1 | vim ~/cord/build/maas/roles/maas/tasks/config-maas.yml |
try to add dnssec_validation: ‘no’ into the file.1
2
3
4
5
6
7
8# ~/cord/build/maas/roles/maas/tasks/config-maas.yml
- name: Ensure Upstream DNS Server
maas:
key: '{{apikey.stdout}}'
maas: 'http://{{mgmt_ip_address.stdout}}/MAAS/api/1.0'
upstream_dns: '{{maas.upstream_dns}}'
dnssec_validation: 'no'
state: present
:::info
config-maas.yml defines tests/checks for the environment. Setting DNS check to false can avoid the error caused by the internet provider.
:::
Get OAI service1
2
3
4
5cd ~/
git clone https://gitlab.com/NickHoB/NTUST_OAI_CORD.git
cd ~/NTUST_OAI_CORD/
git checkout Ciab-4.1
./start.sh # Make all the custom configuration / VNF / synchronizer in to the cord
Build the service
1 | cd ~/cord/build/; |
After successfully build the CORD, Check the password for XOS GUI1
2# check for xos password
ssh head1 -qt "cat /opt/credentials/xosadmin@opencord.org"
And you can get into the web UI from {your_ip}:8080/xos
account :xosadmin@opencord.org
password has checked by the above command
Then you will see the following service graph.
Ciab-5.0
Download source code from cord github, and modify the property of the bash file.
1 | curl -o ~/cord-bootstrap.sh https://raw.githubusercontent.com/opencord/cord/cord-5.0/scripts/cord-bootstrap.sh |
Problem1
2
3
4
5
6TASK [prereqs-common : Check here on failure: 'https://guide.opencord.org/troubleshooting.html#prereqs-common-failures'] *********************************************************************************************************************
Thursday 19 July 2018 10:36:08 +0800 (0:00:01.063) 0:00:01.113 *********
Pausing for 10 seconds
(ctrl+C then 'C' = continue early, ctrl+C then 'A' = abort)
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: error: (25, 'Inappropriate ioctl for device')
fatal: [localhost]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}
Due to the ansible version problem, we need to downgrade ansible version first.
1 | sudo apt-get remove ansible -y |
If you are having trouble when building CORD at the stage “lxc finished” in case of container connectivity problem.
Some campus network will not allow us to query the result of DNS, so that we need to modify the playbook.
1 | vim ~/cord/build/maas/roles/maas/tasks/config-maas.yml |
try to add dnssec_validation: ‘no’ into the file.1
2
3
4
5
6
7
8# ~/cord/build/maas/roles/maas/tasks/config-maas.yml
- name: Ensure Upstream DNS Server
maas:
key: '{{apikey.stdout}}'
maas: 'http://{{mgmt_ip_address.stdout}}/MAAS/api/1.0'
upstream_dns: '{{maas.upstream_dns}}'
dnssec_validation: 'no'
state: present
:::info
config-maas.yml defines tests/checks for the environment. Setting DNS check to false can avoid the error caused by the internet provider.
:::
Get OAI service1
2
3
4
5cd ~/
git clone https://gitlab.com/NickHoB/NTUST_OAI_CORD.git
cd ~/NTUST_OAI_CORD/
git checkout Ciab-5.0
./start.sh # Make all the custom configuration / VNF / synchronizer in to the cord
Build the service
1 | cd ~/cord/build/; |
After successfully build the CORD, Check the password for XOS GUI1
2# check for xos password
ssh head1 -qt "cat /opt/credentials/xosadmin@opencord.org"
And you can get into the web UI from {your_ip}:8080/xos
account :xosadmin@opencord.org
password has checked by the above command
Then you will see the following service graph.
Having trouble with no GUI after sucessfully deployed?
1 | ps ax|grep 8080 |
copy the line related to ssh it will like:
1 | 9762 ? S 0:00 ssh -o User=vagrant -o Port=22 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o ForwardX11=no -o IdentityFile="/home/cord/cord/build/scenarios/cord/.vagrant/machines/head1/libvirt/private_key" -L *:8080:192.168.121.157:80 -N 192.168.121.157 |
and then kill that process
1 | sudo kill -9 <<process ID>> |
open a new terminal and paste the command you have copied
1 | ssh -o User=vagrant -o Port=22 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o ForwardX11=no -o IdentityFile="/home/cord/cord/build/scenarios/cord/.vagrant/machines/head1/libvirt/private_key" -L *:8080:192.168.121.157:80 -N 192.168.121.157 |
Clean environment
If you want to re-install CORD or you want to clean all the configuration of M-CORD, try the following script.
1 | cd ~/cord/build |
Access Openstack Horizon
1 | ssh -L 0.0.0.0:9999:10.1.0.11:80 head1 |
User name and password are in the head node1
2ssh head1
cat /opt/cord_profile/admin-openrc.sh
General OAI service
1 | vagrant@head1:~$ source /opt/cord_profile/admin-openrc.sh |